package com.t2t.top.action.$19memento;

/**
 * 备忘录模式
 * <p/>
 * 描述：主要目的是保存一个对象的某个状态，以便在适当的时候恢复对象，个人觉得叫备份模式更形象些.
 * <p/>
 * 备注：新建原始类时，value被初始化为egg，后经过修改，将value的值置为niu，最后倒数第二行进行恢复状态，结果成功恢复了。
 * 其实我觉得这个模式叫“备份-恢复”模式最形象
 */
public class Test {

    public static void main(String[] args) {
        // 创建原始类
        Original origi = new Original("egg");

        // 创建备忘录  
        Storage storage = new Storage(origi.createMemento());

        System.out.println("初始化状态为：" + origi.getValue());
        origi.setValue("niu");// 修改原始类的状态
        System.out.println("修改后的状态为：" + origi.getValue());
        origi.restoreMemento(storage.getMemento());// 恢复原始类的状态
        System.out.println("恢复后的状态为：" + origi.getValue());
    }
}  